"""
运行注册功能测试的脚本
"""
import os
import pytest
import argparse
import logging
from datetime import datetime

if __name__ == "__main__":
    # 解析命令行参数
    parser = argparse.ArgumentParser(description="运行注册功能测试")
    parser.add_argument("--browser", default="chrome", choices=["chrome", "firefox", "edge"],
                        help="指定浏览器：chrome, firefox, edge")
    parser.add_argument("--headless", action="store_true", help="以无头模式运行浏览器")
    parser.add_argument("--url", default="http://localhost:8080", help="测试网站的URL")
    parser.add_argument("--html", action="store_true", help="生成HTML报告")
    parser.add_argument("--verbose", "-v", action="store_true", help="显示详细输出")
    
    args = parser.parse_args()
    
    # 设置环境变量
    os.environ["BROWSER"] = args.browser
    os.environ["HEADLESS"] = str(args.headless).lower()
    os.environ["BASE_URL"] = args.url
    
    # 准备命令行参数
    pytest_args = ["tests/test_cases/test_register.py"]
    
    if args.verbose:
        pytest_args.append("-v")
    
    # 添加浏览器和URL参数
    pytest_args.extend([
        f"--browser={args.browser}",
        f"--url={args.url}"
    ])
    
    if args.headless:
        pytest_args.append("--headless")
        
    # 添加HTML报告参数
    if args.html:
        timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
        report_path = f"tests/reports/register_test_report_{timestamp}.html"
        pytest_args.extend([f"--html={report_path}", "--self-contained-html"])
        print(f"HTML报告将保存到: {report_path}")
    
    # 运行测试
    print(f"使用浏览器 {args.browser} 运行注册测试，目标URL: {args.url}")
    exit_code = pytest.main(pytest_args)
    
    # 输出结果
    if exit_code == 0:
        print("所有测试通过!")
    else:
        print(f"测试失败，退出代码: {exit_code}")
    
    # 打印HTML报告位置
    if args.html:
        print(f"HTML报告已保存到: {report_path}") 